home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
B-Book Series
/
(k)b3.d64
/
program106
< prev
next >
Wrap
Text File
|
2007-02-28
|
1KB
|
46 lines
0010 // PROGRAM 106
0020 //
0030 // COMELY KATE
0040 //
0050 // TO ILLUSTRATE THE BINARY SEARCH
0060 //
0070 DIM LISST(20)
0080 //
0090 // FIRST SET UP THE LIST
0100 //
0110 READ N#
0120 PRINT
0130 PRINT "THE ORIGINAL LIST IS:"
0140 PRINT
0150 FOR COUNT#:=1 TO N# DO
0160 READ LISST(COUNT#)
0170 PRINT LISST(COUNT#);
0180 ENDFOR COUNT#
0190 //
0200 // PERFORM SEARCH
0210 //
0220 PRINT
0230 PRINT
0240 INPUT "VALUE TO BE SEARCH FOR ": VALUE
0250 PRINT
0260 SEARCH(VALUE,LISST,1,N#)
0270 DATA 20
0280 DATA 12,34,34,34,45,48,54,56,56,65
0290 DATA 67,76,77,78,84,87,88,89,94,98
0300 END
0310 //
0320 PROC SEARCH(ITEM,REF LISST(),BOTTOM#,TOP#)
0330 IF BOTTOM#>TOP# THEN
0340 PRINT ITEM,"IS NOT IN LIST"
0350 ELSE
0360 MIDDLE#:=(BOTTOM#+TOP#) DIV 2
0370 IF ITEM=LISST(MIDDLE#) THEN
0380 PRINT ITEM," IS IN LIST IN POSITION ",MIDDLE#
0390 ELIF ITEM>LISST(MIDDLE#) THEN
0400 SEARCH(VALUE,LISST,MIDDLE#+1,TOP#)
0410 ELSE
0420 SEARCH(VALUE,LISST,BOTTOM#,MIDDLE#-1)
0430 ENDIF
0440 ENDIF
0450 ENDPROC SEARCH